查看原文
其他

性能测试过程中-磁盘 IO 高分析方法

点击上方蓝色“后端面试那些事儿”,选择“设为星标”

学最好的别人,做最好的我们

来源:https://testerhome.com/topics/16598

磁盘IO高分析方法

工具准备:

iotop: http://guichaz.free.fr/iotop/

pt-ioprofile:http://www.percona.com/downloads/percona-toolkit/2.2.1/

io高分析方法:

1、查看磁盘使用率 df -lh

2、安装iostat 安装命令:yum install sysstat

3、iostat -d -k 2 查看IO情况,哪个磁盘的IO负载较高,接下来我们就来定位具体的负载来源

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒) 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

4、安装iotop 命令:安装命令:yum install iotop iotop 查看哪个线程耗IO比较高、按 o 只显示有磁盘 IO 活动的进程。

5、pt-ioprofile定位负载来源文件 pt-ioprofile --profile-pid=1236 --cell=sizes pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。

6、 对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来 pt-ioprofile --profile-pid=1236 --cell=sizes

从上图可以看出IO负载的主要来源是jetty。

并且压力主要集中在读取上。



往期推荐

新技能 MyBatis 千万数据表,快速分页!

太难了~面试官让我结合案例讲讲自己对Spring事务传播行为的理解!

思考个问题,Java 最多支持多少个线程?

如何设计一个牛逼的本地缓存



一起进大厂,每日学干货

关注我,不迷路


点击“阅读原文”,领取 2020 年最新免费技术资料大全

↓↓↓ 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存